Verifying Time Bounds for General Function Pointers
نویسندگان
چکیده
We develop a logic of explicit time resource bounds for a language with function pointers and semantic assertions. We apply our logic to examples containing nontrivial “higher-order” uses of function pointers and we prove soundness with respect to a standard operational semantics. Our core technique is very compact and may be applicable to other resource bounding problems, and is the first application of step-indexed models in which the outermost quantifier is existential instead of universal. Our results are machine checked in Coq.
منابع مشابه
Time Bounds for General Function Pointers
We develop a logic of explicit time resource bounds for a language with function pointers and semantic assertions. We apply our logic to examples containing nontrivial “higher-order” uses of function pointers and we prove soundness with respect to a standard operational semantics. Our core technique is very compact and may be applicable to other resource bounding problems, and is the first appl...
متن کاملA Theory of Termination via Indirection
Step-indexed models provide approximations to a class of domain equations and can prove type safety, partial correctness, and program equivalence; however, a common misconception is that they are inapplicable to liveness problems. We disprove this by applying step-indexing to develop the first Hoare logic of total correctness for a language with function pointers and semantic assertions. In fac...
متن کاملThe Location Linking Concept: A Basis for Verification of Code Using Pointers
Ultimately, any verifying compiler effort needs to be able to verify code that makes use of pointers, though language mechanisms for data abstraction, alias avoidance and control, or disciplined software development techniques may minimize the need for code that is directly based on pointering. It is also clear that the verification machinery of such as compiler must use specifications of compo...
متن کاملBounds on the restrained Roman domination number of a graph
A {em Roman dominating function} on a graph $G$ is a function$f:V(G)rightarrow {0,1,2}$ satisfying the condition that everyvertex $u$ for which $f(u) = 0$ is adjacent to at least one vertex$v$ for which $f(v) =2$. {color{blue}A {em restrained Roman dominating}function} $f$ is a {color{blue} Roman dominating function if the vertices with label 0 inducea subgraph with no isolated vertex.} The wei...
متن کاملVerification of Unloadable C Modules ( Extended
Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011